/**
 * Это класс управления процессами Приложения.
 * @lends phonebook.controller.Controller
 */
phonebook.controller.Controller = Base.extend({

    phoneListModel: null,
    phonebookView: null,
    sidebarView: null,
    searchView: null,
   
    /**
     * Конструктор класса
     * @author Konstantin Chumachenko
     * @augments Base
     * @class Класс управления процессами Приложения.
     * 
     * @constructs
     */
    constructor : function() {
        console.log("-- Controller: Конструктор.");
        var me = this;
        this.phoneListModel = new phonebook.model.PhoneListModel(me);
        this.phoneListModel.load();
        this.phonebookView = new phonebook.view.PhonebookView(me);
        this.sidebarView = new phonebook.view.SidebarView(me);
        this.searchView = new phonebook.view.SearchView(me);
        
    },
    getModel: function(){
        return this.phoneListModel.getModel();  
    },
    /**
     * Формирует и отправляет поисковой запрос
     */
    doSearch: function(){      
        this.phoneListModel.searchLoad($(SEARCH_HOLDER).serialize());  
        this.refreshTable();
    },
    
    /**
     * Выполняет фильтрацию результов по переходу меню
     */
    doFilter: function(unitName){
        this.phoneListModel.filterLoad(unitName);
        this.refreshTable();
    },
    /**
     * Выполняет обновление страницы
     */
    refreshTable: function(){
        this.phonebookView.grid.fnClearTable();
        this.phonebookView.grid.fnAddData(this.getModel());
    }
    
});
